package com.liunian.duplication2.listnode;

public class RemoveElements203 extends ListNode {

    /**
     给你一个链表的头节点 head 和一个整数 val ，请你删除链表中所有满足 Node.val == val 的节点，并返回 新的头节点 。

     示例 1：
     输入：head = [1,2,6,3,4,5,6], val = 6
     输出：[1,2,3,4,5]

     示例 2：
     输入：head = [], val = 1
     输出：[]

     示例 3：
     输入：head = [7,7,7,7], val = 7
     输出：[]
     */
    public ListNode removeElements(ListNode head, int val) {
        ListNode virtualNode = new ListNode(-1, head);
        ListNode cur = virtualNode;
        while (cur.next != null) {
            if (cur.next.val == val) {
                cur.next = cur.next.next;
            } else {
                cur = cur.next;
            }
        }
        return virtualNode.next;
    }

    public static void main(String[] args) {
        ListNode node6 = new ListNode(6, null);
        ListNode node2 = new ListNode(6, node6);
        ListNode node1 = new ListNode(6, node2);
        ListNode node0 = new ListNode(6, node1);
        RemoveElements203 removeElements203 = new RemoveElements203();
        System.out.println(removeElements203.removeElements(node0, 6));
    }

}
